package Work;

import java.util.ArrayList;
import java.util.Scanner;
 
/******菜单页面*****/

public class Menu {
	/**
     * 菜单方法，所有的功能入口，使用本程序只需在main方法中创建本类对象即可.
     */
    public Menu() {
 
 
        //创建数据库连接类对象
        Jdbc db = new Jdbc();
        Scanner sc = new Scanner(System.in);
 
        //创建图书操作类对象
        ChangeBook changebook = new ChangeBook();
        //创建图书排序类对象
        BookList bList = new BookList();
        //创建图书列表(初始数据从文件导入)
        ArrayList<Book> booklist = changebook.read(db);
        
        //创建读者操作类对象
        ChangeReader changereader = new ChangeReader();
        //创建读者列表(初始数据从文件导入)
        ArrayList<Reader> readerlist = changereader.read(db);
        
        //创建管理员操作类对象
        ChangeLibrarian changelibrarian = new ChangeLibrarian();
        //创建管理员列表(初始数据从文件导入)
        ArrayList<Librarian> librarianlist = changelibrarian.read(db);
        
        //创建借阅记录操作类对象
        ChangeRecord changerecord = new ChangeRecord();
        //创建借阅记录列表(初始数据从文件导入)
        ArrayList<Record> recordlist = changerecord.read(db);
 
        while(true){
 
            System.out.println("================================");
            System.out.println("           图书管理系统\n");
            System.out.println("          1.管理员！读者！查询图书");
            System.out.println("          2.管理员！添加图书");
            System.out.println("          3.图书排行！！现在是对图书信息的修改");
            System.out.println("          4.历史记录");
            System.out.println("          5.重置数据");
            System.out.println("          6.管理员！读者！查看全部图书列表");
            System.out.println("          7.管理员！查询读者列表");
            System.out.println("          8.管理员！查询管理员列表");//后面想设计成可以选择查询哪个表的方式
            
            System.out.println("          9.管理员！查看全部读者列表");
            System.out.println("          10.管理员！查看全部管理员列表");
            
            System.out.println("          11.管理员！修改读者信息");
            System.out.println("          12.管理员！修改管理员信息");
            
            System.out.println("          13.管理员！增加图书信息");
            System.out.println("          14.管理员！增加读者信息");
            System.out.println("          15.管理员！增加管理员信息");
            
            System.out.println("          16.管理员！删除图书信息");
            System.out.println("          17.管理员！删除读者信息");
            System.out.println("          18.管理员！删除管理员信息");
            
            System.out.println("          19.读者！进入借阅系统");
            
            System.out.println("          （退出系统请按“0”）\n");
            System.out.println("         请选择服务项目\n                ");
/*
 * 			System.out.println("================================");
            System.out.println("           图书管理系统\n");
            System.out.println("          1.读者登录");
            System.out.println("          2.管理员登录");
            System.out.println("          3.新用户注册");
            System.out.println("          4.退出系统");
            System.out.println("         请选择服务项目\n                ");
 * */            
 
            switch (sc.nextInt()){
                case 1:changebook.search(booklist, db);//再查询
                    break;
                case 2:changebook.insert(booklist, db);//插入方法
                    break;
                case 3://bList.demo(booklist);//排序方法
                	changebook.change(booklist, db);
                    break;
                case 4:changebook.printMessage(db);
                    break;
                case 5:db.restart();
                    break;
                case 6:changebook.printList(booklist);//打印列表
                	break;
                case 7:changereader.search(readerlist,db);
                	break;
                case 8:changelibrarian.search(librarianlist,db);
            		break;
                case 9:changereader.printList(db);
            		break;
                case 10:changelibrarian.printList(db);
        			break;
                case 11:
                	changereader.change(readerlist, db);
                    break;
                case 12:
                	changelibrarian.change(librarianlist, db);
                    break;
                case 13:
                	changebook.insert(booklist, db);
                    break;
                case 14:
                	changereader.insert(readerlist, db);
                    break;
                case 15:
                	changelibrarian.insert(librarianlist, db);
                    break;
                case 16:
                	changebook.delete(booklist, db);
                    break;
                case 17:
                	changereader.delete(readerlist, db);
                    break;
                case 18:
                	changelibrarian.delete(librarianlist, db);
                    break;
                case 19:
                	changerecord.recordsystem(booklist,readerlist,librarianlist,recordlist, db);
                	break;
                default:db.close();
                    System.exit(0);
                    break;
 
            }
            //文件重新存储读取，刷新数据
            booklist = changebook.read(db);
        }
 
    }
}
